#ifndef _QUEUE_H
#define _QUEUE_H
struct QueueRecord;
typedef struct QueueRecord *Queue;
typedef int ElementType;

int IsEmpty(Queue Q);
int IsFull(Queue Q);
Queue CreateQueue(int Capacity);
void DisposeQueue(Queue Q);
void MakeEmpty(Queue Q);
void Enqueue(ElementType X, Queue Q);
ElementType Front(Queue Q);
void Dequeue(Queue Q);
ElementType FrontAndDequeue(Queue Q);

#define MinQueueSize 5

struct QueueRecord
{
    //队头
    int Front;
    //队尾
    int Rear;
    //容量
    int Capacity;
    //大小
    int Size;
    ElementType *Array;
};
#endif // !_QUEUE_H